#ifndef CRAYTRACABLE_H
#define CRAYTRACABLE_H

#include <string>
#include "cray.h"
#include "cboundingsphere.h"
#include "cboundingbox.h"
#include "cmaterial.h"

class CRayTracable
{
public:
    CRayTracable();
    virtual ~CRayTracable();

    virtual bool intersect(CRay * Ray, CPoint3f& P, CVector3f& V) = 0;
    virtual std::string className() = 0;
    virtual void setupBoundingBox() = 0;
    virtual void setupBoundingSphere() =0;


    CMaterial m_Material;
    CBoundingSphere *		m_pBS;
    CBoundingBox*           m_pBB;
};

#endif // CRAYTRACABLE_H
